
// 泛型(Generics)  泛型（Generics）是指在定义函数、接口或类的时候，不预先指定具体的类型，而在使用的时候再指定类型的一种特性。


// 接口中属性的类型就定死了
// interface Person {
//     name:string,
//     age:number
// }


interface Person<T,U>{  // 接口泛型
    name:T,
    age:U
}

let zhang:Person<string,number> = {
    name:"张三",
    age:18
}


interface CreateArrayFunc {
    <T>(length: number, value: T): Array<T>;  // 函数泛型 (接口定义的函数)
}

let createArray: CreateArrayFunc;
createArray = function<T>(length: number, value: T): Array<T> {
    let result: T[] = [];
    for (let i = 0; i < length; i++) {
        result[i] = value;
    }
    return result;
}

createArray<string>(3, 'x'); // ['x', 'x', 'x']



export default {}